package com.itheima.web;

import com.itheima.pojo.Item;
import com.itheima.pojo.NewShoppingCart;
import com.itheima.pojo.ShoppingCart;
import com.itheima.pojo.User;
import com.itheima.service.ItemService;
import com.itheima.service.NewShoppingCartService;
import com.itheima.service.ShoppingCartService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/shoppingCartSelectServlet")
public class ShoppingCartSelectServlet extends HttpServlet {
    private ShoppingCartService ShoppingCartService = new ShoppingCartService();
    private ItemService itemService = new ItemService();

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 通过session获取user对象
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");

        Integer buyerId = user.getId();

        List<ShoppingCart> shoppingCartGoods = ShoppingCartService.selectByBuyerId(buyerId);

        List<Item> items = new ArrayList<>();
        Integer totalPrice = 0;
        for (ShoppingCart shoppingCartGood : shoppingCartGoods) {
            Item item = itemService.selectById(shoppingCartGood.getItemId());
            item.setQuantity(shoppingCartGood.getItemQuantity());
            items.add(item);
            totalPrice += item.getQuantity() * item.getPrice();
        }

        request.setAttribute("items", items);
        request.setAttribute("totalPrice", totalPrice);

        request.getRequestDispatcher("/shopping-cart.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
